ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters

36

def valid_xml_char_ordinal(c):
    codepoint = ord(c)
    # conditions ordered by presumed frequency
    return (
        0x20 <= codepoint <= 0xD7FF or
        codepoint in (0x9, 0xA, 0xD) or
        0xE000 <= codepoint <= 0xFFFD or
        0x10000 <= codepoint <= 0x10FFFF
        )
cleaned_string = ''.join(c for c in input_string if valid_xml_char_ordinal(c))

Comments

Submit
0 Comments